package main

import (
	"fmt"
)

func main() {
	var arr = [90]uint{1, 1, 1, 1, 3, 4, 6, 4, 7}
	var a [3]float32

	fmt.Println(arr)
	fmt.Println(a)

	var n [10]int
	var i, j int

	/* 为数组 n 初始化元素 */
	for i = 0; i < 10; i++ {
		n[i] = i + 100
	}
	/* 输出每个数组元素的值 */
	for j = 0; j < 10; j++ {
		fmt.Printf("元素[%d]=%d\n", j, n[j])
	}
	fmt.Printf("数组长度是 %d", len(n))
	fmt.Println()
	var arr1 [4]int   // 元素自动初始化为零
	fmt.Println(arr1) // [0 0 0 0]

	arr2 := [4]int{1, 2} // 其他未初始化的元素为零
	fmt.Println(arr2)    // [1 2 0 0]

	arr3 := [4]int{5, 3: 10} // 可指定索引位置初始化
	fmt.Println(arr3)        // [5 0 0 10]

	arr4 := [...]int{1, 2, 3} // 编译器按照初始化值数量确定数组长度
	fmt.Println(arr4)         // [1 2 3]

	t := len(arr4) // 内置函数len(数组名称)表示数组的长度
	fmt.Println(t) // 3

	//一维数组
	var arr_1 [5]int
	fmt.Println(arr_1)

	var arr_2 = [5]int{1, 2, 3, 4, 5}
	fmt.Println(arr_2)

	arr_3 := [5]int{1, 2, 3, 4, 5}
	fmt.Println(arr_3)

	arr_4 := [...]int{1, 2, 3, 4, 5, 6}
	fmt.Println(arr_4)

	arr_5 := [5]int{0: 3, 1: 5, 4: 6}
	fmt.Println(arr_5)

	//二维数组
	var arr_6 = [3][5]int{{1, 2, 3, 4, 5}, {9, 8, 7, 6, 5}, {3, 4, 5, 6, 7}}
	fmt.Println(arr_6)

	arr_7 := [3][5]int{{1, 2, 3, 4, 5}, {9, 8, 7, 6, 5}, {3, 4, 5, 6, 7}}
	fmt.Println(arr_7)

	arr_8 := [...][5]int{{1, 2, 3, 4, 5}, {9, 8, 7, 6, 5}, {0: 3, 1: 5, 4: 6}}
	fmt.Println(arr_8)
}
